import { identityCodeValid, identityDir } from '@/libs/tools'
import dict from '@/libs/dict'
// import iViewThemes from 'iview-layout-themes'
// const xeUtils = iViewThemes.util.xeUtils

// 给数据加空的问题样式
export const addFlagHandle = (data) => {
  data.forEach(item => {
    item.cellClassName = {}
  })
  return data
}

// 校验身份证是否重复
export const uniqueIdcard = (data) => {
  data.filter((item, index, self) => {
    for (let i = index + 1; i < self.length; i++) {
      if (self[i].idcard === item.idcard) {
        item.cellClassName.idcard = 'trouble-cell-repeat'
        return true
      }
    }
    return false
  })
  return data
}

// 档案导入数据校验处理
export const validateRecord = (data, RN) => {
  addFlagHandle(data)
  uniqueIdcard(data)
  data.forEach(item => {
    // 校验姓名
    if (!item.name) {
      item.name = ' （姓名不能为空）'
      item.cellClassName.name = 'trouble-cell'
    } else if (item.name.length > 20) {
      item.name = item.name + ' （姓名长度大于20个字符）'
      item.cellClassName.name = 'trouble-cell'
    }
    // 校验性别
    if (item.sex === undefined || item.sex === '') {
      item.sex = ' （性别为空）'
      item.cellClassName.sex = 'trouble-cell'
    } else if (dict.excelRecordSex.indexOf(item.sex) === -1) {
      item.sex = ' （性别内容错误）'
      item.cellClassName.sex = 'trouble-cell'
    }
    // 校验身份证号
    const idcardRtn = identityCodeValid(item.idcard)
    if (!idcardRtn.pass) {
      item.idcard = item.idcard + ' （' + idcardRtn.tip + '）'
      item.cellClassName.idcard = 'trouble-cell'
    }
    // 校验退休时间
    if (!item.tui_xiu_date) {
      item.tui_xiu_date = ' （退休时间不能为空）'
      item.cellClassName.tui_xiu_date = 'trouble-cell'
    } else if (!/^\d{4}$/.test(item.tui_xiu_date)) {
      item.tui_xiu_date = item.tui_xiu_date + ' （退休时间格式应为4位数字）'
      item.cellClassName.tui_xiu_date = 'trouble-cell'
    }
    // 校验养老保险编号
    if (item.yang_lao_no !== undefined && item.yang_lao_no.length > 50) {
      item.yang_lao_no = item.yang_lao_no + ' （养老保险编号过长）'
      item.cellClassName.yang_lao_no = 'trouble-cell'
    }
    // 校验社保中心
    if (item.she_bao_zhong_xin !== undefined && item.she_bao_zhong_xin.length > 50) {
      item.she_bao_zhong_xin = item.she_bao_zhong_xin + ' （社保中心名称过长）'
      item.cellClassName.she_bao_zhong_xin = 'trouble-cell'
    }
    // 校验隶属关系
    if (dict.excelRecordRelation.indexOf(item.li_shu_guan_xi) === -1) {
      item.li_shu_guan_xi = item.li_shu_guan_xi + ' （隶属关系内容错误）'
      item.cellClassName.li_shu_guan_xi = 'trouble-cell'
    }
    // 校验流水号
    if (!item.serial_number) {
      item.serial_number = ' （流水号不能为空）'
      item.cellClassName.serial_number = 'trouble-cell'
    } else if (item.serial_number.length > 10) {
      item.serial_number = ' （流水号长度大于10个字符）'
      item.cellClassName.serial_number = 'trouble-cell'
    }
    // 校验全宗号
    item.record_number = item.record_number.toString().toLowerCase()
    if (!item.record_number) {
      item.record_number = ' （全宗号不能为空）'
      item.cellClassName.record_number = 'trouble-cell'
    } else if (item.record_number.length > 10) {
      item.record_number = item.record_number + ' （全宗号长度大于10个字符）'
      item.cellClassName.record_number = 'trouble-cell'
    } else if (item.record_number !== RN) {
      item.record_number = item.record_number + ' （此全宗号与当前账号信息不符）'
      item.cellClassName.record_number = 'trouble-cell'
    }
    // else if (!/^[a-zA-Z0-9]*$/.test(item.record_number)) {
    //   item.record_number = item.record_number + ' （全宗号只能由英文和数字组成）'
    //   item.cellClassName.record_number = 'trouble-cell'
    // }
  })
  // console.log('传入record数据', data)
  return data
}
// 材料导入数据校验处理
export const validateMaterial = (data, RN) => {
  addFlagHandle(data)
  // uniqueIdcard(data)
  data.forEach(item => {
    // 校验姓名
    if (!item.name) {
      item.name = ' （姓名不能为空）'
      item.cellClassName.name = 'trouble-cell'
    } else if (item.name.length > 20) {
      item.name = item.name + ' （姓名长度大于20个字符）'
      item.cellClassName.name = 'trouble-cell'
    }
    // 校验身份证号
    const idcardRtn = identityCodeValid(item.idcard)
    if (!idcardRtn.pass) {
      item.idcard = item.idcard + ' （' + idcardRtn.tip + '）'
      item.cellClassName.idcard = 'trouble-cell'
    }
    // 校验材料名称
    if (!item.title) {
      item.title = ' （材料名称不能为空）'
      item.cellClassName.title = 'trouble-cell'
    } else if (item.title.length > 40) {
      item.title = item.title + ' （材料名称长度大于40个字符）'
      item.cellClassName.title = 'trouble-cell'
    }
    // 校验文件夹地址（名称）
    const dirRtn = identityDir(item.dir)
    if (!dirRtn.pass) {
      item.dir = item.dir + ' （' + dirRtn.tip + '）'
      item.cellClassName.dir = 'trouble-cell'
    } else if (item.dir.length > 20) {
      item.dir = item.dir + ' （文件夹地址（名称）长度大于20个字符）'
      item.cellClassName.dir = 'trouble-cell'
    }
    // 校验文件夹中文件数
    if (!item.num) {
      item.num = ' （文件夹中文件数不能为空）'
      item.cellClassName.num = 'trouble-cell'
    } else if (!/^\d{1,5}$/.test(parseInt(item.num))) {
      item.num = item.num + ' （文件夹中文件数长度大于5位数）'
      item.cellClassName.num = 'trouble-cell'
    }
    // 校验流水号
    // if (!item.serial_number) {
    //   item.serial_number = ' （流水号不能为空）'
    //   item.cellClassName.serial_number = 'trouble-cell'
    // } else if (item.serial_number.length > 10) {
    //   item.serial_number = ' （流水号长度大于10个字符）'
    //   item.cellClassName.serial_number = 'trouble-cell'
    // }
    // 校验全宗号
    item.record_number = item.record_number.toString().toLowerCase()
    if (!item.record_number) {
      item.record_number = ' （全宗号不能为空）'
      item.cellClassName.record_number = 'trouble-cell'
    } else if (item.record_number.length > 10) {
      item.record_number = item.record_number + ' （全宗号长度大于10个字符）'
      item.cellClassName.record_number = 'trouble-cell'
    } else if (item.record_number !== RN) {
      item.record_number = item.record_number + ' （此全宗号与当前账号信息不符）'
      item.cellClassName.record_number = 'trouble-cell'
    }
    // else if (!/^[a-zA-Z0-9]*$/.test(item.record_number)) {
    //   item.record_number = item.record_number + ' （全宗号只能由英文和数字组成）'
    //   item.cellClassName.record_number = 'trouble-cell'
    // }
  })
  // console.log('传入material数据', data)
  return data
}
